*ClassTbl* *ClassEntry* *PTABLE* *WINDOWSEG* *ICONRESTAB* *ICONRESSEG* *ICONRES* Background *OBJTABLE* *IDTABLE* *NAMETAB* Rectangle Ellipse RoundedRectangle Polygon IrregularPolygon AngledLine Curve PaintObject Picture Group Stage Button Viewer ComboBox Field RecordField Hotword *RHOTWORD* *TbxBase* 35ANM.SBK . . ; TB40ANM.SBK Base* , 8 bxBase* outline lineheight outfield adjustsize sized s_lheight fontChange fontChange character fontChange paragraph UdmakeFont destroyFont linkStuff outline s_lheight /$stringHeight lineheight getDC releaseDC SIgetTextExtent selectObject deleteObject bol-# createFont linkstuff ,"JHY selectObject hOldObject }releaseDC Failure: no logical font created. getDC createFont hfont weight makefont .', " selectObject deleteObject hOldObject }releaseDC hfont destroyFont jogetTextExtent stringLen jogetTextExtent stringHeight newbnds positionChildViewer "knameList credit WjpositionChildViewer extra train 1 -- moveError( t) -- error, optior strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked 9501231300411006347028093682 train b;origloc train animate b;origloc train initAnimation animate t = "train" rightMost = p = moveAmount = 45 origloc initAnimation t = visited false strChecked train origloc -1485,90 strChecked ASYM_BeenHere toolbar ThreeDeeRect out,true bottomLine topLine strChecked strChecked strChecked strChecked strChecked 9501231240478869454215319529 toolbar ComboBox xcombobox focuswindow = false visited strChecked chapterCount topicCount previous buttonclick buttonclick -- sends the message currentPage strChecked buttonclick buttonclick -- sends the tmessage currentPage strChecked heading raisedField tbk_wid_name faceColor highlightColor shadowColor tbk_wid_props color,hls color,hls color,hls tbk_wid_values faceText strChecked highlight strChecked Table of contentsion shadow strChecked Table of contentsion J Z J strChecked Table of contentsion buttonclick buttonclick currentPage focuswindow = strChecked tableOfContents tableOfContents buttonclick buttonclick -- handled Hthe message navigates -- table contents tableOfContents currentPage strChecked Contents SectionLabel strChecked Section: outline @4bookOverview buttonup bookOverview strChecked topics topics buttonclick buttonclick -- causes navigation chapter heading currentPage focuswindow = strChecked Chapter Topics helpTemplate buttonclick buttonclick helpTemplate strChecked newpage previous first strChecked 9501231240428864061321273852 outlineOrganizer chapterCount topicCount selectChars false visited strChecked ASYM_BeenHere strChecked outline topline group topLine X sizeIt bottomLine sizeIt sizeIt bottomLine topline m"topLine" objs rec = sz = pupp = syspageUnitsPerPixel sz > sz > xpix = syspageunitsperpixel ypix = b = ll = lr = ur = ul = ul,lr -- ll,lr,ur -- ll,ul, in,ms ThreeDeeRect bottomLine topLine outline strChecked selectedTextline Moving objects 5 Position property 7 Script recorder 6 Move command 11 Move to command 4 Move by command 3 Moving on idle 12 Frame animation 2 How it works 13 Hiding and showing 14 Animating buttons 15 Useful scripts 16 Animating with color 17 Simulating gravity 18 Timing animation 19 Moving along a line 20 Using path animation 36 Path animation sysbook 40 Fish tank 37 EKG monitor 39 Moving frame animation 41 Untitled 45 Untitled 46 marker vertLoc vertLoc b value ypix = syspageunitsperpixel s = halfH = C- 3* strChecked buttonGroup yunewTopic false outline newChapter qkinitializePage Chapter Untitled header title buttonclick buttonclick stl = selectedTextLines "outline" vRef parentwindow initializePage currentPage %modal isopen pRef close title = "Untitled" B"Chapter" newChapter newTopic stl strChecked &New... editTopic strChecked &Delete updateButtons check buttonclick buttonclick s_cancel buttonclick buttonclick 4s_cancel Edit &Title: header topline group topLine X sizeIt bottomLine sizeIt sizeIt bottomLine topline m"topLine" objs rec = sz = pupp = syspageUnitsPerPixel sz > sz > xpix = syspageunitsperpixel ypix = b = ll = lr = ur = ul = ul,lr -- ll,lr,ur -- ll,ul, in,ms ThreeDeeRect bottomLine topLine header pageId lineNum Moving objectsnimation character paragraph newChapterOrTopic cancel initializePage cancel keyChar close initializePage val keyEnter chapterCount topicCount chapter &Chapter &Topic buttonclick buttonclick Cancel buttonclick buttonclick Cancel Cancel strChecked strChecked strChecked Moving frame animation label myChapterID false visited The animation sysbook makes combining movement and frame animation easy. All you need to do is create a group of objects, specify a path, and then turn frame animation on. in,ms ThreeDeeRect bottomLine topLine globe MplayAnimation animSysBookLoaded enterpage ZstopAnimation animSysbookLoaded leavePage notifyBefore animSysBookLoaded() playAnimation 1 notifyAfter animSysbookLoaded() stopAnimation curframe anim_animationSettings in,ms ThreeDeeRect bottomLine topLine Here we have our familiar animated earth with movement added.ded. leavePage enterpage false EKG monitor label myChapterID false visited The path animation system book allows you to animate an object at either a constant or variable speed over the length of its path. When a constant speed is chosen, the object moves over the length of its path at a steady rate. However, when a variable rate is chosen, the object moves quickly between distant points on its path and slowly between points that are near to one another. illustrates an animation that is best done with a variable rate. The monitor's beam should move across the screen at a steady rate but up and down at varying rates. anim_animationSettings Start MplayAnimation variable buttonUp enterPage playAnimation 1 "Beam" notifyBefore 735,4545 startPosition Start ZstopAnimation buttonUp leavePage stopAnimation "Beam" notifyBefore Variable MplayAnimation buttonUp playAnimation 1 "beam" Variable Rate Constant MplayAnimation buttonUp playAnimation 2 "beam" Constant Rate in,ms ThreeDeeRect bottomLine topLine This example illustrates an animation that is best done with a variable rate. The monitor's beam should move across the screen at a steady rate but up and down at a faster rate.. enterPage leavePage false Fish tank label myChapterID false visited In this example, several fish are animated along different paths across the screen. The animations are set to loop continuously, so that the fish will endlessly complete the same cycle. The school of yellow fish was made by copying and pasting a single fish that was previously animated. Each fish is a transparent bitmap with a white irregular polygon behind it as a mask. in,ms ThreeDeeRect bottomLine topLine in,ms ThreeDeeRect bottomLine topLine placeholder WjpositionChildViewer *N*J strChecked strChecked 2+B+J strChecked strChecked .', " .', " oplastTime timegettime -- cycle through 512 colors the rgb spectrum. notifybefore inc = 32 -- amount each orgbfill r = (r+ g = (g+ b = (b+ lastTime timegettime() N/^/J n/z/mp strChecked lastTime strChecked o P3& strChecked J1Z1J strChecked strChecked strChecked strChecked strChecked 04@4J strChecked strChecked b5r5J strChecked "626J strChecked strChecked B7R7J strChecked strChecked f8v8J strChecked &969J strChecked false Useful scripts label myChapterID 17,18,19,20 myPages This section contains reusable handlers you can use to make writing your animation scripts easier. 17,18,19,20 Animating buttons label myChapterID visited Buttons can display bitmap resources, which are stored in the book. In its normal state, a button displays the bitmap resource specified by its normalGraphic property. When you press the button, the button displays its invertGraphic. You can use these properties to create an animation effect. The button on the right displays an animation when clicked.K in,true ThreeDeeRect bottomLine topLine This button has two frames of animation: one specified by its normalGraphic, the other specified by its invertGraphic, which is displayed when clicked. 5bookref ,&H.& ,&H.& false 5bookref found 5bookref notifyBefore normalgraphic k4 + 1 bitmap ("cd"& bookref notifyAfter bref = rl = resourceList(" found = rl) = "cd"&i C:\HOOK\CBT\NEWANIM.TBK bookref in,true ThreeDeeRect bottomLine topLine These buttons set their normalGraphic property to a series of images.lGraphic, the other specified by its invertGraphic. arrow 5bookref ,&H.& ,&H.& false 5bookref found 5bookref arrow notifyBefore normalgraphic k6 + 1 bitmap ("arrow"& bookref notifyAfter bref = rl = resourceList(" found = rl) = " C:\HOOK\CBT\NEWANIM.TBK bookref false false Hiding and showing label myChapterID false visited A common method for creating frame animation is to hide and show objects in a group using the hide and show commands. This animation hides and shows one paint object after another. Each paint object shows the dog in a different position. A user property of the group keeps track of which frame is currently shown. out,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked curFrame myCurFrame myCurFrame newFrame -- This handler controls the animation -- The consists 18 paintobjects, named -- 1 18, respectively. For each execution (sent constantly mode) advanced one frame. currently shown stored %a userProperty notifybefore numFrames = 18 -- paintObjects ping curFrame = myCurFrame -- calculate newFrame = so we know what h t ( curdog lastTime myCurFrame strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked in,true ThreeDeeRect strChecked strChecked bottomLine h x J strChecked topLine strChecked strChecked The running dog above is a series of 18 frames, shown one after the other. Small differences in the t at least 30 milliseconds have passed before displaying the next frame. This way, no more that 24 frames per second false f@^@^@ How it works label myChapterID false visited To create frame animation, you display a series of images quickly in sequence, each one slightly different than the one preceding it. The differences between the frames cause the object's apparent movement. The animation at the top is a series of sixteen paint objects, shown individually below. strChecked out,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked strChecked strChecked out,true ThreeDeeRect strChecked < L J strChecked bottomLine strChecked topLine strChecked strChecked strChecked strChecked strChecked curFrame myCurFrame myCurFrame newFrame hides shows frames (paintobjects) the globe animation. -- The paintObjects are named "1" notifybefore numFrames = 16 -- curFrame = myCurFrame -- currently showing newFrame = -- store myCurFrame strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked *!:!J strChecked strChecked strChecked #0#J strChecked in,true ThreeDeeRect strChecked f$v$J strChecked bottomLine strChecked P#b%n% topLine strChecked widget slows down everything, notifybefore lastTime strChecked Slow-Mo in,true ThreeDeeRect strChecked ,(<(J strChecked bottomLine strChecked '()4) topLine \)l)J strChecked strChecked This globe animation is a series of paintObjects, shown one after the other.......the other. curFrame myCurFrame mycurframe highlight newFrame moves the over appropriate globe. "globes are numbered "1" notifybefore numFrames = 16 -- paintObjects current showing: curFrame = mycurframe newFrame = myCurFrame <-L-J myCurFrame strChecked *f.l. strChecked strChecked strChecked strChecked strChecked strChecked strChecked .6>6J strChecked D7T7J strChecked *,848 \8l8J strChecked *D9L9 strChecked *\:d: strChecked *t;|; strChecked strChecked strChecked strChecked highlight strChecked false Frame animation label myChapterID chapterCount topicCount 13,14,15 myPages A common method to display a complex animation is to create several frames and show them in a series, similar to the way a movie works. This section covers the basics of frame animation using OpenScript. strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked 4 D J strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked trailerCountdown lastTime myAngle strChecked strChecked strChecked strChecked minute strChecked counter strChecked enterpage Moving on idle label myChapterID false visited Whenever ToolBook is not running scripts, it receives the idle message. If you want an animation to run constantly while nothing else is happening, trigger each step of the animation upon the idle message. The advantage to animation driven by the idle message is that you can interrupt the animation at any time to interact with other parts of the application. The key is to handle only one "step" of the animation per execution of the idle handler.handler. in,true ThreeDeeRect strChecked ballbounds strChecked bottomLine strChecked topLine strChecked in,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked strChecked The bouncing ball moves by a small amount upon each execution of the idle handler. Note that you can press any of the buttons on the tool bar or go to another application at any time.during this animation. elapsedTime curDir vector maxBounce 150,15,-1 myInfo strChecked false Move by command label myChapterID false visited Use the move by command when you want to move an object relative to its current position. For example, the command "move rectangle id 1 by 45,90" would move this object 45 page units to the right and 90 page units down. This example uses move by in a loop to move the golf ball into the hole. The amount that the ball moves for each loop is calculated from the positions of the two objects. Note that the ball goes into the hole no matter where it starts from. out,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked in,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked green j z J strChecked strChecked strChecked strChecked strChecked strChecked out,false ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked Animate false Move to command label myChapterID false visited Use move to to move an object to a specific place. This is useful when the animated path of one object is relative to the positions of other objects. The example at the right shows a moon orbiting a planet. The path that the moon follows is not an ellipse; it's a polygon with 50 vertices. The example script simply moves the moon object to each vertex of the polygon, one after the other. out,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked in,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked orbit strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked out,false ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked .animate buttondown orbit moonRef animate -- sends the animate message -- moves along -- optimization: store {reference %we will -- be refering moonRef = sz = -- we are going walk , so let's -- cache them vs = "orbit" come a list pairs -- one each vertex. For iteration loop, -- we grab y positions E, subtract half ball's positioning relative that (vs) strChecked Animate false Move command label myChapterID false visited Moving an object involves setting its position property for each step of the animation. Usually this is accomplished in a loop structure, such as step or while. The commands to use for moving an object are move to and move by. Toolbook uses page units as the unit of measure to specify position.% pageUnitsPopup buttonclick buttonclick "pageUnitsPopup" strChecked strChecked Move to This command moves the specified object to the position supplied, for example: move polygon "x" to 0,0 Moves it to the upper-left corner of the screen.een.. raisedField tbk_wid_name faceColor highlightColor shadowColor tbk_wid_props color,hls color,hls color,hls tbk_wid_values strChecked highlight strChecked move toe Commandperty shadow strChecked move toe Commandperty * : J strChecked move toe Commandperty raisedField tbk_wid_name faceColor highlightColor shadowColor tbk_wid_props color,hls color,hls color,hls tbk_wid_values strChecked highlight strChecked move bye Commandperty shadow strChecked move bye Commandperty strChecked move bye Commandperty strChecked Move by This command moves the object by the x and y amounts supplied, for example: move polygon "x" by 45,60 Moves it 45 page units to the right and 60 down. s downits down false Script recorder label myChapterID false visited You can animate objects without writing scripts yourself by using the script recorder. This is useful when you want to animate one or more objects along an arbitrary path. How to use the script recorder When to use the script recorder The animation to the right was created using the script recorder. scriptRecorderPopup buttonclick buttonclick "scriptRecorderPopup" strChecked strChecked scriptRecorderPopup2 buttonclick buttonclick "scriptRecorderPopup2" strChecked strChecked strChecked strChecked ThreeDeeRect out,true strChecked strChecked bottomLine strChecked topLine strChecked strChecked ThreeDeeRect in,true strChecked strChecked bottomLine strChecked topLine strChecked balloonpath strChecked cloudpath strChecked cloud strChecked strChecked strChecked strChecked ThreeDeeRect out,false strChecked strChecked bottomLine strChecked topLine strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked strChecked Animate balloon strChecked &Button false Topics strChecked strChecked out,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked out,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked strChecked strChecked strChecked strChecked strChecked strChecked in,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked strChecked strChecked topicLabel raisedField tbk_wid_name faceColor highlightColor shadowColor tbk_wid_props color,hls color,hls color,hls tbk_wid_values strChecked highlight strChecked Path animation sysbook shadow strChecked Path animation sysbook strChecked Path animation sysbook Position property label myChapterID false visited Each object in ToolBook has a property called position that tells ToolBook where the object sits relative to the top and left edges of the page. Moving an object involves changing this property. Position is a list of two numbers given in page units. In the illustration to the right, drag the object and notice how its position property changes. pageUnitsPopup buttonclick buttonclick "pageUnitsPopup" strChecked in,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked descr strChecked The position is 1258,973. he illustration above is 1560,1455. ag the object= strChecked n ~ J strChecked strChecked client strChecked strChecked strChecked ToolBook - POSITION.TBKign strChecked strChecked strChecked strChecked File Edit View Page Object Draw strChecked 9733page yline client endpoint endpoint value Znewb cb = client xpix = sysPageUnitsPerPixel ypix = b = w = v1 = x - w v2 = cb + v3 = v1+w v4 = y - fref = sz = fpos = v3 + *2,v2+(v4-v2) y2 - v4 - v2 strChecked strChecked centerLine strChecked xline client endpoint endpoint value Znewb xpix = sysPageUnitsPerPixel ypix = cb = client b = h = v1 = cb + v2 = y - h v3 = x - v4 = v2 + h fref = sz = fpos = v1+(v3-v1) y2 - y2,v4 + v3 - v1 strChecked strChecked centerLine strChecked strChecked 1258page strChecked strChecked strChecked false Chapter Headings strChecked out,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked out,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked Topics strChecked strChecked topic1 4 D J pageId strChecked Path animation sysbookrks check1 strChecked strChecked topic2 pageId strChecked Fish tankcorderity objects 25 check2 strChecked strChecked topic3 pageId strChecked EKG monitordtionsgbuttons 61 check3 strChecked strChecked Q + 2 topic4 pageId strChecked Moving frame animations62 check4 strChecked strChecked topic5 pageId strChecked Move by commandline4 check5 strChecked strChecked topic6 pageId strChecked Moving on idlec check6 strChecked strChecked topic7 pageId strChecked Billy7r7 check7 strChecked strChecked topic8 pageId strChecked Barbara8 check8 strChecked strChecked topic9 strChecked topic9r8K check9 strChecked strChecked topic10 strChecked topic108 check10 strChecked in,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked strChecked chapterLabel raisedField tbk_wid_name faceColor highlightColor shadowColor tbk_wid_props color,hls color,hls color,hls tbk_wid_values strChecked highlight : J J strChecked Using path animation shadow strChecked Using path animation strChecked Using path animation strChecked Click on one of the topics below to view information on that subject....... 95012313004110063205280234205 myChapterID 7,6,11,4,3,12 myPages Moving objects label ASYM_BeenHere Most animation involves moving an object from one place to another. The topics in this section discuss the various techniques for moving objects using OpenScript. strChecked placeholder WjpositionChildViewer train olastselected tableOfContents myChapter myPages chapterCount topicCount false visited 24,27 selectChars strChecked tableOfContents strChecked 60,Cats 68,Dogs pageList strChecked chapter1 strChecked pageID Moving objectser check1 strChecked strChecked chapter2 strChecked pageID Frame animation check2 strChecked strChecked chapter3 Timing Animation 66 Simulating Gravity 67 topics strChecked pageID Useful scriptsn check3 strChecked strChecked chapter4 Chickens 26 Goats 25 topics pageID strChecked Using path animation check4 strChecked strChecked chapter5 strChecked pageID Untitled check5 strChecked strChecked chapter6 strChecked check6 strChecked strChecked chapter7 strChecked check7 strChecked strChecked chapter8 strChecked check8 strChecked in,true ThreeDeeRect strChecked strChecked bottomLine strChecked topLine strChecked strChecked This book shows you various techniques for animating objects, with and without writing handlers. page "scriptRecorderPopup1" toolbar page "toolbar" outline Template Outline page "outlineOrganizer" location clientSz page "newChapterOrTopic" Page "train" Page "tv 1" 313,172 train pageUnitsPopup Page "pageunits" buttonclick buttonclick close The Animation Book Page "tank" 4005,11130 scriptRecorderPopup ScriptRecorderPopup2 page "scriptRecorderPopup2" about About Animation Book page "aboutAnimation" frame screen openwindow closeWindow openwindow currentPage pageUnitsToClient( frame T"screen" closeWindow 435,450 extra page "train" 4005,11130 MS Sans Serif MS Sans Serif MS Sans Serif MS Sans Serif MS Sans Serif System MS Sans Serif false MS Sans Serif firstTime System MS Sans Serif MS Sans Serif MS Sans Serif Times New Roman 1/23/95 1:01:11 PM Courier New MS Sans Serif 8:00 PM Arial info_LastSavedBy info_LastSaved Courier New Claude Ostyn Arial chapterCount MS Sans Serif Courier New 1993,1994. Asymetrix Corporation. All Rights Reserved. /gives you permission e, revise, reuse the -- individual scripts your own -- applications. You may H entire -- substantial part redistribution ` product. retains copyright on original elements . Include notice "Portions 1993, 1994. they contain copied -- tableOfContents message sent Htoolbar pressed Standard ToolBook messages menus, initialize Back handling enterApplication enabled sysRuntime fhelpText "Options modifying content template." e"Template &Outline" alias "outline" c"contents" fhelptext\ "Displays/hides I palette." e"New &Chapter..." "Adds qchapter e"Change C& Name.." changeName" "Changes current Topic..." e"Using helpTemplate" ) on firstTime rebuildStructure xanimSysbookLoaded() "The path animation sysbook xloaded. Animations the ""Path "" sections will . Be sure that mtb40anm.sbk are included startupSysbooks." checkmarks bk = topicsBackground() visited "tableofcontents" entermenu menuName,menuAlias chaptersBackground() disable TopicsBackground() leaveapplication isOpen focusWindow mstate = menuItemChecked(" close inserted area, beyond 4s_temp_animNewBackground chapterCount < chapterLimit() "skipDialog" "This limited " && && " Utility handlers -- returns allowed /reference headings updatePalette ZpagesOfEachChapter,curPage,curBackground,prevChapterHeadingPage,chapterList,listBoxText ) = 2 pageCounter = 2 curPageId = pagelabel = xNULL myPages curChapterId = myChapterID = curChapterID & "," & pageLabel & tabSpacer() & -- either /. Move ;backgrounds voutline initializePage currentPage -- Used box a dialog used store extra information gets clipped side extractName t tabOffset = extractID t lastTabLoc = U(t) numerical location itemOffset itm,lst color middleGray 240,63.5,2.1875 dark darkBlue 240,25.125,100 tabs. serves a spacer between on each listbox. Navigation pref = updatechecks mydir = sen = sysErrorNumber se = ss = bref = u&"tmplhelp.tbk") 1= ss "Cannot find 8TMPLHELP.TBK" vref = defaultpage "cbt1" r= se newChapter promptForName chapterName = "Untitled" ("Enter ls = -- a clean -- Fsuspend navigate -- appropriate ssm = syssuspendmessages e= ls " && && " newTopic pageNum ls = -- -- -- = ssm e= ls saveAs aboutAnimate %modal anim_StartSize() sized ZbuttonPos spupp = sysPageUnitsPerPixel pRef currentPage gHeader gButtons "buttonGroup" gOutline "outline" marker oclientsize rightBorder cs - bottomBorder cs - bSize cs - sizeIt - 4* fb+10* fb - 18* openWindow Zsm_cxframe,sm_cyframe,sm_cycaption,defaultSize,defaultPosition {winRef 4metric indexes: 32 -- width sizable 33 -- height 4 -- 3000,5000 "0,0" X"user" INT getSystemMetrics( -- cache {references stored clientSize ini file clientSz pageUnitsToClient( the borders captions extraWidth extraHeight )*2+\ winref -- calculate maximimum ebased on maxSize "outlineOrganizer" ) maximumSize chandling about box: windowsized closeWindow statusbar -- enable table contents enabled B"tableOfContents" "toolbar" pref = pRef "heading" "Table -- Don't allow deletion "You cannot delete Ycutting "This template does xsupport adding initialize 4we land on initializePage highlightColor value shadowColor faceColor sized spupp = syspageunitsperpixel b = syssuspendmessages = -- This {serves %the table contents 8. It updated 'Book Overview dialog box voutline pageList limited maxTopics = 8 listCount = textlineCount( t = -- find that has been visited curG = ("g"&i) o = curField -- -- store links pageID remaining tabs ("g"&i) -- turn on selected goPage = initializePage -- highlights "buttons" (they're really fields) value lightGray darkBlue() -- updates checkmarks. Only checks chapter have updateChecks numChapters = 8 -- representing a " -- each made up a checkbutton. ("g"&i) o = -- Yreferences checkref -- stored -- a userProperty myPages subPages = mypages -- walk through -- curID checkRef updateLabels -- -- ("g"&i) o = -- = label up toolbar pref = enabled on the outline selectedTextLines currentPage xtopicsBackground() pRef -- updates . sent entered that navigates initializePage "heading" label "chapterLabel" table contents myPages = topicList updateCheckMarks updateChecks clearing a "You cannot delete "Warning: operation 8be reversed ]Undo." f"OK" "Cancel" ls = curBK = xchaptersBackground() rebuildStructure e= ls -- same [handler f"OK" ls = e= ls newChapter highlightColor value shadowColor faceColor sized spupp = syspageunitsperpixel b = syssuspendmessages = -- This {lives on the "Chapter Headings" serves %table contents every chapter. Each heading -- has one a userProperty (myPages) containing a -- list idnumbers BookOverview dialog box passed handler via pageList parameter. topicList limited maxTopics = 10 listCount = curPageID -- find out that been visited v = curG = ("g"&i) o = curField curCheck -- update each Mbased on label ( -- checkmark, appropriate p <> v -- store {navigation pageID -- hidden remaining tabs ("g"&i) -- updates checkmarks. called instead coming since only need be updated updateChecks -- representing a " -- made up a checkbutton. curTopic = ("g"&i) o = fieldRef checkRef curPageId = curpageID -- turn on selected goPage = (pageid initializePage -- highlights M"buttons" (they're really fields) value lightGray darkBlue() -- flag %having been visited up toolbar toolbarRef = enabled -- only allow same chapter xchaptersBackground() "outline" selectedTextLines currentPage -- initializes the label a user property each content heading initializePage ID (mychapterID "topicLabel" pressed, contents V. myChapterId a userProperty containing . It 8overview dialog box. backpage = (myChapterID updateCheckMarks added, newTopic nextPageParent = myPages deleted. "You cannot "Warning: operation 5be reversed ]Undo." f"OK" "Cancel" ls = curBK = xtopicsBackground() rebuildStructure e= ls -- maintain navigational structure f"OK" ls = e= ls highlightColor value shadowColor faceColor sized spupp = syspageunitsperpixel b = syssuspendmessages = -- the {loc, isShift ZoldX,oldy,newX,newY SM_SWAPBUTTON = 23 b = xGroup = "xLine" yGroup = "yLine" xpix = sysPageUnitsPerPixel ypix = dx = dy = cb = "client" xfield = yfield = descrField = thisWin = Window user has swapped mouse buttons, since returns -- hardware key down. getsystemmetrics( leftMouseButton = loop occurs whole drags (<> loc -- asure within newP = cb + 330, X-dx), cb - ( cb+330, - dy), cb - ( b = y = b + ( x = b + ( -- endpoint handler dimension lines) -- that sizes them. a hidden Bthat writes the %supposedly -- written recorder. animate buttonClick" & -- optimization: store {reference %we will -- be refering balloon = cloud = szb = szc = -- we are going walk , so let's -- cache them vsb = m"balloonpath" vsc = m"cloudpath" come a list pairs -- one each vertex. For iteration loop, -- we grab y positions F, subtract half positioning relative (vsc) xposb yposb xposc yposc buttonClick PaintObject Page 4785,2184 Group 6203,1728 4975,2146 6090,1746 5200,2146 5956,1746 5425,2178 5822,1731 5698,2229 5661,1708 5888,2267 5548,1691 6054,2267 5448,1691 6256,2273 5330,1688 6410,2248 5238,1699 6552, 5153,1711 6647,2184 5097,1728 6849,2133 4977,1752 7027,2108 4871,1763 7193,2108 4773,1763 7335,2121 4688,1757 highlightColor value shadowColor faceColor sized spupp = syspageunitsperpixel b = syssuspendmessages = highlightColor value shadowColor faceColor sized spupp = syspageunitsperpixel b = syssuspendmessages = -- sends the animate message handled -- moves 2golf ball ?hole, no matter where starts Zsteps,ballRef,ballLoc,xmove,ymove b. Note: higher more slowly will g = 20 -- optimization: store reference Hbe refering over ballref = two positions figure out how far -- we have nthem horizontally vertically on each -- We Hfinding difference -- distances divide holeLoc = -- now that we know loop: somewhere . This randomBallLocation location on greenRef = gbounds = gsize = bSize = xmax = ymax = n)),\ -- on , makes ball bounce around within "ballBounds" notifyBefore velocityConstant = 15 -- myInfo a userProperty storing information needed figure out -- where nthe t. It stored a list because -- accessing 1 faster than -- The holds Wfollowing -- < pageUnits moved iterations apex>, -- xVector= elapsedTime= currentDirection= =I have inside bnds = frameBnds = -- Each used a unit Ipassed. At the 0; 3 later, -- ElapsedTime multiplied acceleration constant calculate amount needs nover instance). -- When going , we up, we yVector = newPosition = -- now that we've , let's whether we change `directions -- we've hit ) + 30 >= omaxBounce -- we're <= 0 -- update we've either -- -- ) >= -1 * -- sets sweep hand angle/360. At 0, the points up. -- rotation clockwise fullRev = 360 -- constant degrees & revolution. current stored property myAngle -- find coords = ctr = ( ")/2,\ Tradius = (( _) - ( k))/2 radians. (2*PI -- Note: PI/2 subtracted so 0 Lrather than minutesAngle = ( ) * (2 * PI) - (PI / 2) ctr,\ {)), \ -- moves sweephand one around should take 1 complete notifybefore steps = 10 -- millsecs = 1000 -- milliseconds maxDisplay = 9 -- highest zdisplayed curTime = timeGetTime() newAngle = ( kmillSecs)/ we need change fref = "counter" t = t = -- update -- links initializes widget Xmmsystem entering a pasted notifyAfter -- This handler accelerates its current a terminating y , simulating earth's gravity. -- Since the animation based on will fall 'same -- on processor. Also, since you provide {'s relative falls should look natural. -- Parameters: -- ob: -- heightInMeters: how tall represented SUPPOSED example, {represents a trash can, F"1" would work.) -- y1: destination y coordinate, where want stop. -- v0: starting `velocity (optional) per -- (note: ToolBook 4, down positive, up negative) ,y1,v0 -- link timeGetTime(): returns milliseconds Xmmsystem xsupplied v0 = 0 obBounds = units heightInTwips = -- find out many < there are twipsPerMeter = constant acceleration due -- ( = 9.8 -- store y0 = t0 = timegettime() loop moves reaches y1 -- elapsed started, t = ( -t0)/1000 -- speed v = (v0 + -- formula -- on v0, y0, Note conversion. y = y0 + (v0*t+.5* *(t^2))* -- y, making sure we haven't gone v >= 0 y = j(y,y1- Zy + >= y1 v >=0 -- shows thought bubble, safe. Drops , bounces animate safeHeight = 2 -- "real life" ( y0 = U"ground" ,y0,-2 ,y0,-.5 -- initialize initAnimation wstate initanimation origloc -- animates globe, consisting 16 paintobjects named "1" notifybefore numFrames = 16 -- -- info a userProp that has three values (1 userProperty quicker read than 3). The Yare: -- < occurred>,, -- < delay between frames> Zvars lastTime lastFrame newTime = timeGetTime() vref = period passed. If so, u >= newFrame = -- update newframe increase decrease the speed animation. milliseconds. -- initialize widget Xmmsystem entering a pasted notifyAfter -- moves {moveObj along pathObj. -- steps movements per segment moveObjectAlongPath "You can only lines angledLines." vert = startX startY obSize = -- here we will figure out how far -- we have nthem horizontally vertically on each -- We Hfinding difference -- distances divide xmove = ( ymove = ( -- now that we know -- loop: -- initializes the structure outline form chapters < extractName strng tabOffset = lastTabLoc = -- puts a insertName ,newName "" startLoc = 2 endLoc = R(startloc - 1) -- pulls zout -- < extractNumber txt colOffset ~(":", .- 1 istype(" 4s_cancel keyEnter updateText lineNum chapter fref "outline" curLine insertName( pRef = (pageID label chaptersBackground() updateLabels "tableofcontents" bkRef = topicsBackground() initializePage 4s_enterText enabled "updateButtons" buttonclick o = "outline" stl = selectedTextLines tlineNum = chapterOrPage "Delete (s)?" f"OK" "Cancel" startline ssm = sysSuspendMessages (stl) curID = extractID( BstartLine "Cannot delete the /" && /& "." curBK = xtopicsBackground() xchaptersBackground() = ssm rebuildStructure initializePage renumberText count extractNumber( ~(":", t)-1 key,isShift keyupArrow && keyDownArrow && keyFirst && keyLast oselectedtextlines updateHeader tl 4s_cancel stl = selectedTextLines lineNum fref = txtline = chapter txtLine) extractName( pageId extractID( enabled "updateButtons" maxChapter C(t) -- This main dragAndDrop code: 4s_navFromPalette sls = gotopage initializePage enormous handler handles selecting, dragging, dropping listbox ZstartLine,endLine,lineHeight,mybounds,xloc,mytext -- Find Bclicked on. will be starting -- Break user V edge startline = <= 0 Uwe want n. we value -- later we've a heading: endline = -- lineheight pageUnits (see below): -- Cache commonly used values xpix = sysPageUnitsPerPixel ypix = myBounds = myText = marker = totalLineCount = we know be between sides -- The following section selects B(s): -- lineList corresponding -- we wish 9-- (We've headingOrTopic = " -- Walk down Zwe hit another -- incrementing needed: oselectedTextlines moves arrow up -- targetLine insertion point loop executes mousebutton released: mouseLoc = -- above -- calculate Ucurrently -- there's beyond -- somewhere pnt = -- -- vertLoc -- lineYloc returns `location a given -- -- inside U(s): toward U(s) 1 place -- that we -- numLines . + 1 -- targetline > -- we asure moved -- -- original -- "," & reorder scrollToSelectedTextLine (stl) b = s = > s + - numlines,0) units - 1 - -- adjusts . Called adjustsize n b = * n + 3* v = b - 16* -- initialize the sized outfield = "outline" ypix = sysPageUnitsPerPixel o = b = syssuspendmessages = adjustsize ylineheight o,3) font gets changed , reset fontChange 4s_lheight notifyAfter -- returns a given linkStuff fref makeFont stringHeight() destroyFont windows stuff linkstuff X"gdi" getTextExtent( gselectObject( deleteObject( gcreateFont( linkDLL "user" ggetDC( releaseDC( makefont fontName,pitch, weight ghfont,hOldObject,hdc sysClientHandle) syspageunitsperpixel fheight ((1440/ /72)) -- pixels hFont <,0,0,0, ,0,0,0,0,0,0,0,0, "Failure: no logical created." -- kills sysclientHandle, twips, length stringLen ,strlen strLen k65536) * "aaa",3) y65536) * highlightColor value shadowColor faceColor sized spupp = syspageunitsperpixel b = syssuspendmessages = dial angle ctr = coords = radius = (( ) - ( ())/2 dialAngle = ( _/360) * (2 * PI) - (PI / 2) U"hand" + (.8 * f)), \ (.8 * )/2,\ pagelist = pageList() H360 itemoffset( T) + 1 "tv switch" ("tv" && notifybefore "1,2,5,3" notifyBefore velocityConstant = 6 -- info a list needed information %follows: *= myInfo xVector= elapsedTime= currentDirection= bnds = frameBnds = screen yVector = newPosition = -- now that we've moved, let's whether we have change directions ) + 30 >= omaxBounce <= 0 ) >= -1 * positionChildViewer childViewer, bnds newbnds= pageUnitsToClient( notifyAfter "credit" nameList() vref = "extra" pagescroll currentpage "train" r vRef, initAnimation isOpen notifyBefore animate nl = itemoffset( newName = (nl)+1) close namelist "Janet Strong,Melody Christensen,Shuang Li,Joseph Brick" ,&H.& Displays/hides Template Outline palette. helpTemplate &Contents Change To&pic Name.. Using this &Template false Displays help on using this template. Options for modifying content of this template. Changes name of current chapter. New &Chapter... outline animSysbookLoaded Cvisited changeName rebuildStructure tableOfContents toolbar tableofcontents firstTime firstTime Adds new chapter to this book. Change C&hapter Name.. Changes name of topic chapter. New &Topic... author The path animation sysbook is not loaded. Animations in the "Path Animation" sections will not run. Be sure that mtb40anm.sbk are included in your startupSysbooks. Adds new topic to this chapter. contents topicsBackground Template &Outline enterApplication Change Chapter Name... chaptersBackground author outline Change Topic Name... contents TopicsBackground entermenu helpTemplate Contents leaveapplication outline toolbar author outline toolbar reader outline mstate rebuildStructure contents outline w, #? s_temp_animNewBackground chaptersBackground This template is limited to chapters. skipDialog /%chapterCount chapterLimit topicsBackground newBackground chapterLimit chapter headings chaptersBackground topics topicsBackground w, #> .', 7 w, #> PBmyPages voutline curChapterId myChapterID pagelabel chapterCount outline tabSpacer curPageId tableofcontents tableOfContents chaptersBackground 0%chapterCount label topicsBackground qkinitializePage rebuildStructure .', " extractName extractID ,&H.& itemOffset O@middleGray 9@darkBlue tabSpacer tableOfContents tableofcontents updatechecks tableOfContents .', " Cannot find book TMPLHELP.TBK mydir tmplhelp.tbk helpTemplate initializePage w, #? Enter new chapter name. cancel This template is limited to chaptersBackground label rebuildStructure tableOfContents toolbar chapterName chapters. skipDialog /%chapterCount chapterLimit Untitled topicsBackground newChapter cancel Enter new topic name. chaptersBackground lastPage label rebuildStructure tableOfContents toolbar chapterName skipDialog Untitled topicsBackground newTopic cancel Enter new name. label rebuildStructure label changeName firstTime saveAs about aboutAnimate anim_StartSize animSysbookLoaded buttonGroup gHeader marker gButtons outline spupp X sizeIt bSize header gOutline rightBorder sized getSystemMetrics exclientSz maxSize clientSz getSystemMetrics outlineOrganizer openWindow <+V!! statusbar fxclientSz closeWindow tableOfContents toolbar background previous topics tableOfContents toolbar Table of contents heading enterBackground tableOfContents toolbar leaveBackground You cannot delete this page. clear You cannot cut this page. This template does not support adding new pages to the table of contents. newPage qkinitializePage initializePage highlight highlightColor shadow shadowColor faceColor highlight highlightColor shadow shadowColor faceColor ,&H.& ,&H.& spupp highlight shadow sized pageID curField voutline false goPage qkinitializePage Zselected pageID buttondown [darkBlue selected checkref false Cvisited subPages curID pageID pageID OBmypages value updateChecks pageID pageID label updateLabels previous outline topics toolbar topicsBackground enterpage myPages topics topicList toolbar heading chapterLabel label OBmyPages initializePage topics updateChecks OBmyPages updateCheckMarks .', " Cancel Warning: this operation cannot be reversed using Undo. chaptersBackground curBK rebuildStructure You cannot delete the last page of this background. topicsBackground clear .', " Cancel Warning: this operation cannot be reversed using Undo. chaptersBackground curBK rebuildStructure You cannot delete the last page of this background. topicsBackground newChapter newPage qkinitializePage qkinitializePage previous highlight highlightColor shadow shadowColor faceColor highlight highlightColor shadow shadowColor faceColor ,&H.& ,&H.& spupp highlight shadow sized curCheck Cvisited pageID curField curPageID label topicList checkRef fieldRef Cvisited curPageId pageID curTopic updateChecks false goPage qkinitializePage Zselected pageid buttondown [darkBlue selected chaptersBackground Cvisited outline topics previous toolbar toolbarRef enterpage topicLabel toolbar heading mychapterID label initializePage backpage qkinitializePage myChapterID topics yunewTopic newPage chaptersBackground author qkinitializePage nextPageParent qkinitializePage previous .', " Cancel Warning: this operation cannot be reversed using Undo. chaptersBackground curBK rebuildStructure You cannot delete the last page of this background. topicsBackground clear .', " Cancel Warning: this operation cannot be reversed using Undo. chaptersBackground curBK rebuildStructure You cannot delete the last page of this background. topicsBackground highlight highlightColor shadow shadowColor faceColor highlight highlightColor shadow shadowColor faceColor ,&H.& ,&H.& spupp highlight shadow sized SM_SWAPBUTTON descr client xLine yLine yGroup 5nendpoint yfield getsystemmetrics thisWin getsystemmetrics xGroup xfield descrField buttonDown xposc select end buttonClick cloud to handle buttonClick balloon yposb yposc balloonpath cloudpath xposb move selection to animate .animate buttonup buttonClick highlight highlightColor shadow shadowColor faceColor highlight highlightColor shadow shadowColor faceColor ,&H.& ,&H.& spupp highlight shadow sized highlight highlightColor shadow shadowColor faceColor highlight highlightColor shadow shadowColor faceColor ,&H.& ,&H.& spupp highlight shadow sized .animate buttonup holeLoc randomBallLocation animate green ballRef gbounds gsize bSize greenRef randomBallLocation .', 7 maxBounce myInfo ballBounds myInfo newPosition frameBnds {:myAngle coords minute sweep .', " sweep maxDisplay timeGetTime curTime z:myAngle counter timeGetTime timeGetTime sweep counter mmsystem enterpage timeGetTime obBounds timegettime timeGetTime mmsystem accelerate ,&H.& safeHeight ground thought accelerate insertName .', " extractNumber s_cancel false keychar curLine bkRef chaptersBackground outline label insertName pageID tableofcontents chapter x5chapter lineNum topicsBackground BlineNum updateLabels qkinitializePage updateText s_enterText updateButtons enterField s_cancel s_enterText updateButtons updateText leaveField Cancel extractID chaptersBackground curBK chapterOrPage tlineNum curID Cannot delete the last page of background startline rebuildStructure chapter Delete selected page(s)? outline topicsBackground qkinitializePage buttonclick 1, "j ,&H.& count OZextractNumber renumberText keychar keyFirst keyLast keyup .'+ + txtline s_cancel extractID extractName y5chapter BlineNum updateButtons lineNum OZextractNumber pageId header updateHeader OZextractNumber maxChapter extractID qkinitializePage gotopage s_navFromPalette buttondoubleclick V, #> mouseLoc 7renumberText marker count headingOrTopic lineHeight targetLine lineList /?reorder tlines topic llineYloc heading updateHeader tline IvertLoc buttondown lineHeight scrollToSelectedTextLine lineYloc marker lineHeight adjustsize highlight highlightColor shadow shadowColor faceColor highlight highlightColor shadow shadowColor faceColor ,&H.& ,&H.& spupp highlight shadow sized angle coords coords angle 1, #? pagelist itemoffset tv switch gpageList buttonup enterbackground 1,2,5,3 pageList .', 7 maxBounce myInfo myInfo newPosition screen frameBnds Copy Ctrl+&File &Open... Ctrl+O &Save Ctrl+S Save &As... saveas &Import... import &Export... export Print Set&up... printsetup &Print Pages... Ctrl+P printpages Prin&t Report... printreport Send &Mail... sendmail &Run... E&xit Alt+F4 &Edit &Size to Page F11 sizetopage Aut&hor F3 author &Page &Next Alt+Right &Previous Alt+Left previous &Help &Contents F1 contents &About Animate... Displays information about this application. wrwww w"'ww r'"ww "wr'w 'ww"w wwwr' wwww" wwwwr wxwww wwwwx wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwww wwwwwwwwwwww wwwwwwwwwwwww wwwwwwwwwwwww wwwwpw pwwwxxwwwwx wwwwpwwwwww wwwww xxwww wwwwpp xxwwxx wwwwwxx xxwwwwwxx wwwww wxxxxxxwwwxx wwwwx xxwwwwxxxxxww wxxxxxwwwxxxx wwwww xwwwwxxxxxww wwwww wwxxwxwwwwxx wwwwx xwwww wwwwx wwwwxxwwwxx wwwww wwwwwwp wwwwwp wwwwwwx wwwwp wwwwwwwwx wwwwww wwwwwwwwwx wwwwww wwwwwwww wwwwwwwwwwwww wwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwww wwwwwwwwwwww wwwwwwwwwwwww wwwwwwwwwwwww wwwwxxwwwwwwxxwwwwx wwwwwwwwwww wwwww xxxwww wwwwxxw wwwwxxx wwwwx xwwwwx wwxpx xxwwwww wwxxxp xxxwww wwwxxw xxwwww wwwww wwwwww wwwww wwwww wwwwwww wwwwwp wwwwwwwp wwwww wwwwwwx wwwwwp wwwwp wwwwwwwwx wwwwww wwwwwwwwwx wwwwww wwwwwwww wwwwwwwwwwwww wwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww """"""""""""" ********** ********** ********** ********** """""""""""""" **********" ***********" ************ *********** """""""""""""" ********" *********" ********** ********* """"""""""""" ******" *******" ******** ******* """"""""""""" ***** ****" ***** *****" ***** ****** ***** ***** """"""""""""" ********* ********* ********* ********* xxxxp wwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwx wwwwwwwwwwwww wwwwwwwxxxx wwwwwwwwwww wwwwwwwwwwx wwwwwwwwwww wwwwwwwwww wwwwwwwwwwW wwwwwwwwwp wwwwwwwwww twwwwwwwww wwwwwwwww )wwwwwwwwx wwwwwwwww wwwwwwwwpx wwwwwwwwwf wwwwwwww pwwwwwwwww @wwwwwwww wwwwwwww wwwwwwww wwwwwwww Vwwwwwwww wwwwwwww wwwwwwww pwwwp wwwwwwww Gwwwwwwww wwwwwwwwEUwwwwwwww wwwpww wwwwwwww wwwwwwww wwwwwwww xwwwwwwww wwwwwwww wwwwwwww wxxxx wwwwwwwwF wwwwwwwwp wwwwwwww &wwwwwwwwp wxxpwwwwwwwww &wwwwwwwwx wwwwwwwww &wwwwwwwww wwwwwwwww wwwwwwwwwp wwwwwwwwww wwwwwwwwww wwwwwwwwww Fwwwwwwwwwwx wwwwwwwwwww Xwwwwwwwwwww wwwwwwwwwww wwwwwwwwwwww wwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwww wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwx arrow6 arrow1 arrow2 arrow3 arrow4 arrow5 Hfinding difference -- distances divide holeLoc = -- now that we know loop: 3DD;3 4458q xt414 wWsOO 86110 7ssp4 x?OHuOVS`1 _E7787 pMaeo dd788 W6OO8 7885OOW xsOOCh VVS_p oOO?x OOcco v6Wv7 sVV6x s/OOg 86V8 6VVQc oOO?ss OOV?Fs 1!!/p 6VVOp 131316=1 14;;? 1@@I; 6@@9@ = 10w 11;11 wq3Q91 wws ; `5;30 `;053 1AV;1 V\VLVLV\ F\F\VLV\VE eieieieie ieieieieie ieieieieie ieieieieie ieieie` `ieieieie ieieieieie ieieieieie ieieieieie ieiei`0 PP!@ AVxP` pwG?p VTTVTVTP 991911 `ieieieie ieieieieie ieieieieie iee 5 eieieieie ieieieieie ieieieie xwwxxwwxx wwxxwwxxww xxwwxxwwxx wwxxwwxxwp xwwxxwwxx wwxxwwxxww xxwwxxwwxx wwxxwwxxwp 0,0,-15,-735,180,-780,360,-735,390,0,360,765,180,795,15,765,0,0 ,true,,true,,true,,true Constant FALSE FALSE 6072,4234 0,0,59,59,-1,-44,58,15,-1,-89,58,-30,-1,-133,58,-74,0,-178,59,-119,1,-222,60,-163,2,-267,61,-208,5,-311,64,-252,8,-355,67,-296,12,-400,71,-341,17,-444,76,-385,23,-488,82,-429,31,-532,90,-473,41,-575,100,-516,52,-618,111,-559,67,-660,126,-601,86,-700,145,-641,112,-736,171,-677,145,-765,204,-706,186,-778,245,-719,225,-756,284,-697,254,-723,313,-664,277,-686,336,-627,296,-645,355,-586,311,-603,370,-544,323,-561,382,-502,334,-518,393,-459,343,-474,402,-415,351,-430,410,-371,358,-386,417,-327,363,-342,422,-283,369,-298,428,-239,373,-254,432,-195,378,-210,437,-151,381,-165,440,-106,384,-121,443,-62,387,-77,446,-18,389,-32,448,27,390,12,449,71,388,57,447,116,385,101,444,160,383,145,442,204,379,190,438,249,376,234,435,293,372,278,431,337,367,323,426,382,362,367,421,426,356,411,415,470,349,455,408,514,341,498,400,557,332,542,391,601,322,585,381,644,309,628,368,687,294,670,353,729,275,710,334,769,251,747,310,806,220,778,279,837,179,795,238,854,140,775,199,834,111,741,170,800,91,702,150,761,75,661,134,720,62,618,121,677,52,575,111,634,42,531,101,590,35,487,94,546,29,443,88,502,24,399,83,458,19,355,78,414,15,311,74,370,11,266,70,325,8,222,67,281,6,178,65,237,4,133,63,192,3,89,62,148,1,44,60,103 59,59 59,59 0,0,15,-105,120,-285,240,-465,435,-705,615,-855,780,-960,975,-1050,1050,-1020,1050,-930,945,-690,660,-405,480,-240,330,-120,120,-15,15,15 ,,,,,,,,,,,,,,, constant FALSE FALSE 5745,4770 0,0,59,59,10,-67,69,-8,29,-130,88,-71,63,-188,122,-129,97,-246,156,-187,133,-304,192,-245,170,-360,229,-301,207,-416,266,-357,245,-472,304,-413,288,-524,347,-465,330,-576,389,-517,373,-629,432,-570,415,-681,474,-622,463,-728,522,-669,515,-771,574,-712,566,-815,625,-756,619,-857,678,-798,675,-893,734,-834,732,-930,791,-871,790,-965,849,-906,851,-993,910,-934,912,-1021,971,-962,973,-1049,1032,-990,1036,-1026,1095,-967,1050,-968,1109,-909,1038,-903,1097,-844,1011,-841,1070,-782,984,-779,1043,-720,957,-717,1016,-658,919,-664,978,-605,871,-616,930,-557,823,-568,882,-509,776,-521,835,-462,728,-473,787,-414,680,-425,739,-366,631,-379,690,-320,582,-333,641,-274,532,-288,591,-229,482,-242,541,-183,430,-200,489,-141,377,-158,436,-99,324,-117,383,-58,263,-87,322,-28,203,-57,262,2,143,-26,202,33,80,-4,139,55 FALSE 59,59 59,59 0,0,165,0,315,0,390,-75,435,330,525,-750,585,45,690,15,795,-45,900,30,1020,0,1170,0,1290,0,1410,0,1545,0,1620,-90,1665,330,1740,-735,1815,60,1965,15,2040,-45,2130,15,2250,0,2415,0 ,,,,,,,,,,,,, Variable FALSE 5235,3420 0,0,45,45,55,0,100,45,110,0,155,45,165,0,210,45,215,0,260,45,265,0,310,45,315,0,360,45,340,-25,385,20,365,-50,410,-5,390,-75,435,-30,405,60,450,105,420,195,465,240,435,330,480,375,465,-30,510,15,495,-390,540,-345,525,-750,570,-705,545,-485,590,-440,565,-220,610,-175,585,45,630,90,620,35,665,80,655,25,700,70,690,15,735,60,725,-5,770,40,760,-25,805,20,795,-45,840,0,830,-20,875,25,865,5,910,50,900,30,945,75,940,20,985,65,980,10,1025,55,1020,0,1065,45,1070,0,1115,45,1120,0,1165,45,1170,0,1215,45,1210,0,1255,45,1250,0,1295,45,1290,0,1335,45,1330,0,1375,45,1370,0,1415,45,1410,0,1455,45,1455,0,1500,45,1500,0,1545,45,1545,0,1590,45,1570,-30,1615,15,1595,-60,1640,-15,1620,-90,1665,-45,1635,50,1680,95,1650,190,1695,235,1665,330,1710,375,1690,-25,1735,20,1715,-380,1760,-335,1740,-735,1785,-690,1765,-470,1810,-425,1790,-205,1835,-160,1815,60,1860,105,1865,45,1910,90,1915,30,1960,75,1965,15,2010,60,1990,-5,2035,40,2015,-25,2060,20,2040,-45,2085,0,2070,-25,2115,20,2100,-5,2145,40,2130,15,2175,60,2170,10,2215,55,2210,5,2255,50,2250,0,2295,45,2305,0,2350,45,2360,0,2405,45,2415,0,2460,45 45,45 45,45 0,0,165,0,315,0,390,-75,435,330,525,-750,585,45,690,15,795,-45,900,30,1020,0,1170,0,1290,0,1410,0,1545,0,1620,-90,1665,330,1740,-735,1815,60,1965,15,2040,-45,2130,15,2250,0,2415,0 ,,,,,,,,,,,,, Constant FALSE 5235,3420 0,0,45,45,98,0,143,45,196,0,241,45,294,0,339,45,370,-55,415,-10,398,-6,443,39,409,92,454,137,419,189,464,234,430,287,475,332,440,276,485,321,448,178,493,223,456,80,501,125,464,-18,509,27,472,-115,517,-70,480,-213,525,-168,488,-311,533,-266,497,-409,542,-364,505,-506,550,-461,513,-604,558,-559,521,-702,566,-657,529,-700,574,-655,536,-602,581,-557,544,-504,589,-459,551,-407,596,-362,558,-309,603,-264,566,-211,611,-166,573,-113,618,-68,580,-15,625,30,621,35,666,80,713,2,758,47,798,-43,843,2,878,14,923,59,969,13,1014,58,1065,0,1110,45,1163,0,1208,45,1262,0,1307,45,1360,0,1405,45,1458,0,1503,45,1552,-8,1597,37,1615,-84,1660,-39,1630,-1,1675,44,1640,97,1685,142,1650,195,1695,240,1661,292,1706,337,1669,270,1714,315,1676,172,1721,217,1683,74,1728,119,1690,-24,1735,21,1697,-121,1742,-76,1704,-219,1749,-174,1711,-317,1756,-272,1717,-415,1762,-370,1724,-513,1769,-468,1731,-611,1776,-566,1738,-709,1783,-664,1747,-664,1792,-619,1756,-566,1801,-521,1765,-468,1810,-423,1774,-371,1819,-326,1784,-273,1829,-228,1793,-175,1838,-130,1802,-78,1847,-33,1811,20,1856,65,1871,43,1916,88,1965,15,2010,60,2041,-44,2086,1,2123,10,2168,55,2219,4,2264,49,2317,0,2362,45,2415,0,2460,45 45,45 45,45 0,0,45,555,1560,585,2925,480,2925,-90,2895,-585,1530,-675,-75,-645,0,-60 ,true,,true,,true,,true, Variable 4687,1177 0,0,765,765,10,60,775,825,28,117,793,882,56,170,821,935,93,221,858,986,138,268,903,1033,193,312,958,1077,257,352,1022,1117,330,390,1095,1155,413,424,1178,1189,504,455,1269,1220,604,482,1369,1247,713,507,1478,1272,832,528,1597,1293,959,546,1724,1311,1096,560,1861,1325,1241,572,2006,1337,1396,580,2161,1345,1560,585,2325,1350,1707,572,2472,1337,1846,556,2611,1321,1977,537,2742,1302,2099,515,2864,1280,2213,491,2978,1256,2318,463,3083,1228,2415,433,3180,1198,2504,400,3269,1165,2584,364,3349,1129,2655,325,3420,1090,2719,283,3484,1048,2773,238,3538,1003,2820,191,3585,956,2858,140,3623,905,2887,87,3652,852,2908,31,3673,796,2921,-28,3686,737,2925,-90,3690,675,2918,-144,3683,621,2902,-195,3667,570,2878,-244,3643,521,2846,-290,3611,475,2805,-334,3570,431,2757,-375,3522,390,2700,-414,3465,351,2635,-450,3400,315,2561,-484,3326,281,2480,-515,3245,250,2390,-544,3155,221,2292,-570,3057,195,2185,-594,2950,171,2071,-615,2836,150,1948,-634,2713,131,1817,-650,2582,115,1678,-664,2443,101,1530,-675,2295,90,1357,-670,2122,95,1194,-661,1959,104,1042,-650,1807,115,900,-634,1665,131,768,-616,1533,149,647,-593,1412,172,536,-568,1301,197,435,-539,1200,226,345,-506,1110,259,265,-470,1030,295,196,-431,961,334,137,-388,902,377,88,-342,853,423,50,-293,815,472,22,-240,787,525,4,-183,769,582,-3,-123,762,642,0,-60,765,705 FALSE 765,765 765,765 `0o`0o` 07wpw wpwwx 45,-45,2475,1935,3825,1305,4185,1755,4725,1305 ,true,,true, Constant FALSE -675,-135 45,-45,765,390,72,-23,792,412,100,-1,820,434,127,21,847,456,154,42,874,477,181,64,901,499,209,86,929,521,236,108,956,543,264,129,984,564,291,151,1011,586,319,172,1039,607,347,194,1067,629,374,215,1094,650,402,236,1122,671,430,257,1150,692,458,278,1178,713,486,299,1206,734,514,320,1234,755,542,341,1262,776,570,362,1290,797,599,382,1319,817,627,403,1347,838,655,423,1375,858,684,444,1404,879,712,464,1432,899,741,484,1461,919,770,504,1490,939,798,524,1518,959,827,544,1547,979,856,564,1576,999,885,583,1605,1018,914,602,1634,1037,943,622,1663,1057,972,642,1692,1077,1001,661,1721,1096,1031,679,1751,1114,1060,698,1780,1133,1089,717,1809,1152,1119,736,1839,1171,1149,755,1869,1190,1178,773,1898,1208,1208,791,1928,1226,1238,809,1958,1244,1268,827,1988,1262,1298,845,2018,1280,1328,863,2048,1298,1358,881,2078,1316,1389,898,2109,1333,1419,915,2139,1350,1450,932,2170,1367,1480,949,2200,1384,1511,966,2231,1401,1541,983,2261,1418,1572,999,2292,1434,1603,1015,2323,1450,1634,1032,2354,1467,1666,1048,2386,1483,1697,1063,2417,1498,1728,1079,2448,1514,1760,1094,2480,1529,1791,1109,2511,1544,1823,1124,2543,1559,1854,1139,2574,1574,1886,1153,2606,1588,1918,1168,2638,1603,1950,1182,2670,1617,1982,1195,2702,1630,2015,1209,2735,1644,2047,1222,2767,1657,2079,1235,2799,1670,2112,1248,2832,1683,2145,1260,2865,1695,2177,1273,2897,1708,2210,1285,2930,1720,2243,1296,2963,1731,2277,1307,2997,1742,2310,1318,3030,1753,2343,1329,3063,1764,2376,1339,3096,1774,2410,1349,3130,1784,2444,1359,3164,1794,2477,1368,3197,1803,2511,1377,3231,1812,2545,1385,3265,1820,2579,1393,3299,1828,2613,1400,3333,1835,2648,1407,3368,1842,2682,1414,3402,1849,2716,1421,3436,1856,2751,1426,3471,1861,2785,1432,3505,1867,2820,1437,3540,1872,2855,1441,3575,1876,2889,1445,3609,1880,2924,1448,3644,1883,2959,1451,3679,1886,2994,1453,3714,1888,3029,1455,3749,1890,3064,1456,3784,1891,3099,1457,3819,1892,3134,1457,3854,1892,3169,1456,3889,1891,3203,1454,3923,1889,3238,1453,3958,1888,3273,1450,3993,1885,3308,1447,4028,1882,3343,1443,4063,1878,3377,1438,4097,1873,3412,1432,4132,1867,3446,1427,4166,1862,3481,1419,4201,1854,3515,1412,4235,1847,3549,1404,4269,1839,3583,1395,4303,1830,3616,1385,4336,1820,3649,1374,4369,1809,3682,1363,4402,1798,3715,1351,4435,1786,3748,1338,4468,1773,3780,1325,4500,1760,3812,1311,4532,1746,3838,1321,4558,1756,3861,1348,4581,1783,3885,1373,4605,1808,3910,1397,4630,1832,3937,1420,4657,1855,3965,1441,4685,1876,3994,1461,4714,1896,4024,1478,4744,1913,4055,1493,4775,1928,4088,1506,4808,1941,4121,1516,4841,1951,4156,1524,4876,1959,4190,1528,4910,1963,4225,1530,4945,1965,4260,1529,4980,1964,4295,1525,5015,1960,4329,1520,5049,1955,4363,1511,5083,1946,4397,1501,5117,1936,4430,1489,5150,1924,4462,1476,5182,1911,4493,1461,5213,1896,4524,1445,5244,1880,4555,1427,5275,1862,4584,1409,5304,1844,4614,1390,5334,1825,4642,1369,5362,1804,4670,1349,5390,1784,4698,1327,5418,1762,4725,1305,5445,1740 720,435 720,435 45,-45,-2205,-675,-2565,135,-2835,585,-3735,675,-4815,855 ,true,,true,, constant FALSE 3750,1230 45,-45,735,510,-22,-64,668,491,-90,-82,600,473,-157,-99,533,456,-225,-117,465,438,-292,-134,398,421,-360,-151,330,404,-428,-166,262,389,-496,-181,194,374,-564,-197,126,358,-633,-211,57,344,-701,-225,-11,330,-770,-237,-80,318,-838,-250,-148,305,-907,-262,-217,293,-976,-272,-286,283,-1045,-282,-355,273,-1114,-290,-424,265,-1184,-299,-494,256,-1253,-306,-563,249,-1323,-311,-633,244,-1392,-315,-702,240,-1462,-319,-772,236,-1532,-321,-842,234,-1601,-320,-911,235,-1671,-318,-981,237,-1741,-314,-1051,241,-1810,-308,-1120,247,-1880,-299,-1190,256,-1948,-288,-1258,267,-2016,-273,-1326,282,-2084,-255,-1394,300,-2150,-233,-1460,322,-2214,-206,-1524,349,-2277,-175,-1587,380,-2336,-137,-1646,418,-2392,-96,-1702,459,-2442,-48,-1752,507,-2488,5,-1798,560,-2527,63,-1837,618,-2560,124,-1870,679,-2597,183,-1907,738,-2640,238,-1950,793,-2687,290,-1997,845,-2738,337,-2048,892,-2793,380,-2103,935,-2851,419,-2161,974,-2911,454,-2221,1009,-2973,486,-2283,1041,-3037,515,-2347,1070,-3101,540,-2411,1095,-3167,563,-2477,1118,-3234,584,-2544,1139,-3302,601,-2612,1156,-3369,618,-2679,1173,-3438,632,-2748,1187,-3506,645,-2816,1200,-3575,656,-2885,1211,-3644,665,-2954,1220,-3714,673,-3024,1228,-3783,683,-3093,1238,-3851,694,-3161,1249,-3920,706,-3230,1261,-3989,717,-3299,1272,-4058,729,-3368,1284,-4127,740,-3437,1295,-4196,752,-3506,1307,-4264,763,-3574,1318,-4333,775,-3643,1330,-4402,786,-3712,1341,-4471,798,-3781,1353,-4540,809,-3850,1364,-4609,821,-3919,1376,-4677,832,-3987,1387,-4746,844,-4056,1399,-4815,855,-4125,1410 FALSE 690,555 690,555 -45,45,-1395,495,-1935,855,-2205,1125,-2295,1395,-2475,1845,-2655,2115,-4815,2655 ,,,,,,, Variable FALSE 3690,-270 0,0,720,495,-124,71,596,566,-204,98,516,593,-283,124,437,619,-363,151,357,646,-442,177,278,672,-521,204,199,699,-601,230,119,725,-680,257,40,752,-760,283,-40,778,-839,310,-119,805,-919,336,-199,831,-998,363,-278,858,-1077,389,-357,884,-1157,416,-437,911,-1236,442,-516,937,-1316,469,-596,964,-1395,495,-675,990,-1427,516,-707,1011,-1459,537,-739,1032,-1490,559,-770,1054,-1522,580,-802,1075,-1554,601,-834,1096,-1586,622,-866,1117,-1617,643,-897,1138,-1649,664,-929,1159,-1681,686,-961,1181,-1713,707,-993,1202,-1744,728,-1024,1223,-1776,749,-1056,1244,-1808,770,-1088,1265,-1840,791,-1120,1286,-1871,813,-1151,1308,-1903,834,-1183,1329,-1935,855,-1215,1350,-1951,871,-1231,1366,-1967,887,-1247,1382,-1983,903,-1263,1398,-1999,919,-1279,1414,-2014,934,-1294,1429,-2030,950,-1310,1445,-2046,966,-1326,1461,-2062,982,-1342,1477,-2078,998,-1358,1493,-2094,1014,-1374,1509,-2110,1030,-1390,1525,-2126,1046,-1406,1541,-2141,1061,-1421,1556,-2157,1077,-1437,1572,-2173,1093,-1453,1588,-2189,1109,-1469,1604,-2205,1125,-1485,1620,-2210,1141,-1490,1636,-2216,1157,-1496,1652,-2221,1173,-1501,1668,-2226,1189,-1506,1684,-2231,1204,-1511,1699,-2237,1220,-1517,1715,-2242,1236,-1522,1731,-2247,1252,-1527,1747,-2253,1268,-1533,1763,-2258,1284,-1538,1779,-2263,1300,-1543,1795,-2269,1316,-1549,1811,-2274,1331,-1554,1826,-2279,1347,-1559,1842,-2284,1363,-1564,1858,-2290,1379,-1570,1874,-2295,1395,-1575,1890,-2306,1421,-1586,1916,-2316,1448,-1596,1943,-2327,1474,-1607,1969,-2337,1501,-1617,1996,-2348,1527,-1628,2022,-2359,1554,-1639,2049,-2369,1580,-1649,2075,-2380,1607,-1660,2102,-2390,1633,-1670,2128,-2401,1660,-1681,2155,-2411,1686,-1691,2181,-2422,1713,-1702,2208,-2433,1739,-1713,2234,-2443,1766,-1723,2261,-2454,1792,-1734,2287,-2464,1819,-1744,2314,-2475,1845,-1755,2340,-2486,1861,-1766,2356,-2496,1877,-1776,2372,-2507,1893,-1787,2388,-2517,1909,-1797,2404,-2528,1924,-1808,2419,-2539,1940,-1819,2435,-2549,1956,-1829,2451,-2560,1972,-1840,2467,-2570,1988,-1850,2483,-2581,2004,-1861,2499,-2591,2020,-1871,2515,-2602,2036,-1882,2531,-2613,2051,-1893,2546,-2623,2067,-1903,2562,-2634,2083,-1914,2578,-2644,2099,-1924,2594,-2655,2115,-1935,2610,-2782,2147,-2062,2642,-2909,2179,-2189,2674,-3036,2210,-2316,2705,-3163,2242,-2443,2737,-3290,2274,-2570,2769,-3417,2306,-2697,2801,-3544,2337,-2824,2832,-3671,2369,-2951,2864,-3799,2401,-3079,2896,-3926,2433,-3206,2928,-4053,2464,-3333,2959,-4180,2496,-3460,2991,-4307,2528,-3587,3023,-4434,2560,-3714,3055,-4561,2591,-3841,3086,-4688,2623,-3968,3118,-4815,2655,-4095,3150 FALSE 720,495 720,495 -45,45,-1395,495,-1935,855,-2205,1125,-2295,1395,-2475,1845,-2655,2115,-4815,2655 ,,,,,,, Variable FALSE 4320,-450 0,0,720,495,-124,71,596,566,-204,98,516,593,-283,124,437,619,-363,151,357,646,-442,177,278,672,-521,204,199,699,-601,230,119,725,-680,257,40,752,-760,283,-40,778,-839,310,-119,805,-919,336,-199,831,-998,363,-278,858,-1077,389,-357,884,-1157,416,-437,911,-1236,442,-516,937,-1316,469,-596,964,-1395,495,-675,990,-1427,516,-707,1011,-1459,537,-739,1032,-1490,559,-770,1054,-1522,580,-802,1075,-1554,601,-834,1096,-1586,622,-866,1117,-1617,643,-897,1138,-1649,664,-929,1159,-1681,686,-961,1181,-1713,707,-993,1202,-1744,728,-1024,1223,-1776,749,-1056,1244,-1808,770,-1088,1265,-1840,791,-1120,1286,-1871,813,-1151,1308,-1903,834,-1183,1329,-1935,855,-1215,1350,-1951,871,-1231,1366,-1967,887,-1247,1382,-1983,903,-1263,1398,-1999,919,-1279,1414,-2014,934,-1294,1429,-2030,950,-1310,1445,-2046,966,-1326,1461,-2062,982,-1342,1477,-2078,998,-1358,1493,-2094,1014,-1374,1509,-2110,1030,-1390,1525,-2126,1046,-1406,1541,-2141,1061,-1421,1556,-2157,1077,-1437,1572,-2173,1093,-1453,1588,-2189,1109,-1469,1604,-2205,1125,-1485,1620,-2210,1141,-1490,1636,-2216,1157,-1496,1652,-2221,1173,-1501,1668,-2226,1189,-1506,1684,-2231,1204,-1511,1699,-2237,1220,-1517,1715,-2242,1236,-1522,1731,-2247,1252,-1527,1747,-2253,1268,-1533,1763,-2258,1284,-1538,1779,-2263,1300,-1543,1795,-2269,1316,-1549,1811,-2274,1331,-1554,1826,-2279,1347,-1559,1842,-2284,1363,-1564,1858,-2290,1379,-1570,1874,-2295,1395,-1575,1890,-2306,1421,-1586,1916,-2316,1448,-1596,1943,-2327,1474,-1607,1969,-2337,1501,-1617,1996,-2348,1527,-1628,2022,-2359,1554,-1639,2049,-2369,1580,-1649,2075,-2380,1607,-1660,2102,-2390,1633,-1670,2128,-2401,1660,-1681,2155,-2411,1686,-1691,2181,-2422,1713,-1702,2208,-2433,1739,-1713,2234,-2443,1766,-1723,2261,-2454,1792,-1734,2287,-2464,1819,-1744,2314,-2475,1845,-1755,2340,-2486,1861,-1766,2356,-2496,1877,-1776,2372,-2507,1893,-1787,2388,-2517,1909,-1797,2404,-2528,1924,-1808,2419,-2539,1940,-1819,2435,-2549,1956,-1829,2451,-2560,1972,-1840,2467,-2570,1988,-1850,2483,-2581,2004,-1861,2499,-2591,2020,-1871,2515,-2602,2036,-1882,2531,-2613,2051,-1893,2546,-2623,2067,-1903,2562,-2634,2083,-1914,2578,-2644,2099,-1924,2594,-2655,2115,-1935,2610,-2782,2147,-2062,2642,-2909,2179,-2189,2674,-3036,2210,-2316,2705,-3163,2242,-2443,2737,-3290,2274,-2570,2769,-3417,2306,-2697,2801,-3544,2337,-2824,2832,-3671,2369,-2951,2864,-3799,2401,-3079,2896,-3926,2433,-3206,2928,-4053,2464,-3333,2959,-4180,2496,-3460,2991,-4307,2528,-3587,3023,-4434,2560,-3714,3055,-4561,2591,-3841,3086,-4688,2623,-3968,3118,-4815,2655,-4095,3150 FALSE 720,495 720,495 -45,45,-1395,495,-1935,855,-2205,1125,-2295,1395,-2475,1845,-2655,2115,-4815,2655 ,,,,,,, Variable FALSE 3960,-720 0,0,720,495,-124,71,596,566,-204,98,516,593,-283,124,437,619,-363,151,357,646,-442,177,278,672,-521,204,199,699,-601,230,119,725,-680,257,40,752,-760,283,-40,778,-839,310,-119,805,-919,336,-199,831,-998,363,-278,858,-1077,389,-357,884,-1157,416,-437,911,-1236,442,-516,937,-1316,469,-596,964,-1395,495,-675,990,-1427,516,-707,1011,-1459,537,-739,1032,-1490,559,-770,1054,-1522,580,-802,1075,-1554,601,-834,1096,-1586,622,-866,1117,-1617,643,-897,1138,-1649,664,-929,1159,-1681,686,-961,1181,-1713,707,-993,1202,-1744,728,-1024,1223,-1776,749,-1056,1244,-1808,770,-1088,1265,-1840,791,-1120,1286,-1871,813,-1151,1308,-1903,834,-1183,1329,-1935,855,-1215,1350,-1951,871,-1231,1366,-1967,887,-1247,1382,-1983,903,-1263,1398,-1999,919,-1279,1414,-2014,934,-1294,1429,-2030,950,-1310,1445,-2046,966,-1326,1461,-2062,982,-1342,1477,-2078,998,-1358,1493,-2094,1014,-1374,1509,-2110,1030,-1390,1525,-2126,1046,-1406,1541,-2141,1061,-1421,1556,-2157,1077,-1437,1572,-2173,1093,-1453,1588,-2189,1109,-1469,1604,-2205,1125,-1485,1620,-2210,1141,-1490,1636,-2216,1157,-1496,1652,-2221,1173,-1501,1668,-2226,1189,-1506,1684,-2231,1204,-1511,1699,-2237,1220,-1517,1715,-2242,1236,-1522,1731,-2247,1252,-1527,1747,-2253,1268,-1533,1763,-2258,1284,-1538,1779,-2263,1300,-1543,1795,-2269,1316,-1549,1811,-2274,1331,-1554,1826,-2279,1347,-1559,1842,-2284,1363,-1564,1858,-2290,1379,-1570,1874,-2295,1395,-1575,1890,-2306,1421,-1586,1916,-2316,1448,-1596,1943,-2327,1474,-1607,1969,-2337,1501,-1617,1996,-2348,1527,-1628,2022,-2359,1554,-1639,2049,-2369,1580,-1649,2075,-2380,1607,-1660,2102,-2390,1633,-1670,2128,-2401,1660,-1681,2155,-2411,1686,-1691,2181,-2422,1713,-1702,2208,-2433,1739,-1713,2234,-2443,1766,-1723,2261,-2454,1792,-1734,2287,-2464,1819,-1744,2314,-2475,1845,-1755,2340,-2486,1861,-1766,2356,-2496,1877,-1776,2372,-2507,1893,-1787,2388,-2517,1909,-1797,2404,-2528,1924,-1808,2419,-2539,1940,-1819,2435,-2549,1956,-1829,2451,-2560,1972,-1840,2467,-2570,1988,-1850,2483,-2581,2004,-1861,2499,-2591,2020,-1871,2515,-2602,2036,-1882,2531,-2613,2051,-1893,2546,-2623,2067,-1903,2562,-2634,2083,-1914,2578,-2644,2099,-1924,2594,-2655,2115,-1935,2610,-2782,2147,-2062,2642,-2909,2179,-2189,2674,-3036,2210,-2316,2705,-3163,2242,-2443,2737,-3290,2274,-2570,2769,-3417,2306,-2697,2801,-3544,2337,-2824,2832,-3671,2369,-2951,2864,-3799,2401,-3079,2896,-3926,2433,-3206,2928,-4053,2464,-3333,2959,-4180,2496,-3460,2991,-4307,2528,-3587,3023,-4434,2560,-3714,3055,-4561,2591,-3841,3086,-4688,2623,-3968,3118,-4815,2655,-4095,3150 FALSE 720,495 720,495 w"q13;3 p#v`f`70 ~g77sg vsgbq13 wsvbS pw3c" 8gc11 7 s17 y3310 w f{fwr 73w13 &w6wsvguG zsg3w 3p+;0 "vvcg 33;13; xf87w [uSQyw 8#h93 3118! #{373 #6w737s 7w57( 0;0s '7swzwvW3 ;cs'88 :'wg( wgusyes 3668d;;3 #3;;3 v:v3}rw 31;;33 3;;0a"! 00#C wgX76p jss7'c+s ;;3;3;33 `S`4r '508 / wvw*;3; ;3;3; >Xwzwc; 3;3;3?; 067wg0# 7'rf& SWx(wu gwzs6 #10370 wbrb"; 3e'53& ;14#iw( ws#zv zRs5z> @wS#C zww6r 3eV7s 3v3f; 6gpwfx 3wzzsw' 2:334' 7266cf{3 s1789!9 6rG6g s'rv023 vjxn~vv wj`'&&3 'zr6vc 3sh7s &2bx 11wXr 2sf6{3vf b& && 0w11 873cjvus fz6~'" "bbB; bb3f$2 11 "( 3310w8 g3~iai 306 36;3s hsxx~ b'7&# 9310+ wh88fxe (wg*6 wzrg6g"w k;;33 c;#p# 36;;1 830 + >w{Wd wxfvz sg~>/ " 3f&23 w#vews! ||}}w h*gwz 8wzvw " "c3 wzwzwv.6v sn#kw v~jns '#zwszwr&" cfpbV"3 10b2B33 xbw*{ 5wp2" "6&&2Br wchgu 'zz4' 2f2""& nc2jbb `"r b b!; '$ "v 6bGwi 0#e1' &'g*v v2&"! "&"b&"B7;2 `3;1g "&s*7j 4&"b$" 'vh3 s0p!# 3`";1 gv>7( zff%" jv'&*r" 3zx+3 :vhw3f6z> "bv#b$"~; 6{jszr"b gv2"w&&2 #0&6' {c*8# g(zvzx 3vr&"B* 6'xf' s"b"g su!1w j~6v6 6wjws~ "b&"w b6g#"w g&rzb ng~nz fggwc rwg7znw' &b"b"~~r"b 4czrb "rjz&&*w v::;1 &fsjCf G"fb* wgwvw6 rfr&%' *`$#0 ~|#f&* fg*fbfgfv ww7gvw gR`d$cgC b'&b$& 6"&&""bb*J 0":j3b"u bf&f&ffb ssvsgc wf&"R$ ""fp2z r&"z`"#&u 6f2V&" g6v7c6rv &gcff&&"" #&bb &b"' cb&#!$# 62b"BB"B j8jh7 C`"` & `277"B& f "f 7 $#' wcR&v a` "F&d !bB'f& zvfr&c"rbj c`&v## b$f ''6'bF 4'&'s$&& "b"b` vbvfzv &b"&"Bvv bb#&#" !&!$rpsa'# v7v&! "" !$`&bFB c'B& f6`% Bv "bfgfjcbfc b"B*j" &76Vv64 jnfnnvo nffgd' $ $ $'fnr&&r`b b"b2#" " " @bBbB ffbf" bff:f '66v6pr6 f$bf" $&v`"&& bvbj7&bb' g "&w "'wv"f"2cv g'&"R' nff$&f ff bBb `#hr%&D&6# 'b7&2p f&b$vf"f B`fb& b& "~ 3!"bbf! 0"Br46 &brGf d&rbd" fr&% bBb$b zzv"b&" F&g0p bcvcgfgBf bBFft"fb& r&""`'0dgz f&fbB'r "bbrba" bB"`b``fzw s"%"b2 bbffd &fbdgrvcb `#$6&ff &`b&b& srb&ff"3"b f&&f&`b" &fb`fb ""$ " 6&cbrw t#g`f&bF $&v'fww6&v rab`ffC c"#"brd F``f&"b bfbbfd$&fb a$"&66cbr &g"p"'dgf& bdgc&Vgwvf ccs&'&z467 f&F&Fbf&Fb fd`bfbB " "&"` c`'&rR#& `gb`$&gg &wf&`$$pb `d&& ": fbff&bf bbdfbff&&f "$"b" &wgg''&6$2 ''&p"%&v&f $df&ffF&"f p&fgt `&& &e& &*w&bd& fFfbdf&&fb FfF&Bf&b g&v7gvw' 'cbbqbpse &$f&&"f6f #7:"fbd f&bffb`ffF #g2v6c bvb&!cf'&b b&6fbd vgb`f f&"FC&&w bbFbb "jb& " v6vwgvs b7'g&bvrv7 ` cg&& bp&ff bbF@ .##hr {&fbFFbf ""bjf& " f6v6"bbr7" gcb66gbd`f "F&gg`f fvrcc$&$ c cfczw Fff&fbff& 4sfbw"''vw wf&&$$ 'ff &rcBfgv`ff bCBbfwb`%" `:"7"&rr6b &&Ff$fBbf& cgfb&#' fwwgbg F" vgfg &&f f&g xvbr'cgv2f gd&bV vpwgb'`v g'&"b &ffbfB`bf& ffb`` 2cfgh6bd&& vv bf&v~ b&ffbF&dbf bf&&" "bb&&" 2brzr'r xg&b`%" vgffvfvg g'v`v&h 'fwzb "f&dbd&&bf &bFf&ffbbB &~v's &$bfF $ " ""b &f~nzw gffd&ff' v ffdcfw' ffjwx0&66 &&ff&fb` && bBa bF&bFf&B &ff&fvf. rcgfr $&"bb&f &b&*bbf b`d&BF&ff& bffbfdg &fg&6frCgz vg&v6wg& &ffb&" "bjf&&b dvFbf&fdf& f&ff&b rgfbB bbFf jb`&"&&f z2fbf&f cffv ff'fBb bgffgg6fbb ` "bb" "bbjjfjf "&&fbf" 6gbrg bbgf &&"b& jbf&$ !!ff& ~vbF$ v6f`agv'd fbB'&& Bbffn ""$" ffbf&" c` r` `fbf&& gbf&&fvv d&ff"%'&c ff&ffgg " "" "&&jbb ggbvb bFhf`""G&b frBvbb "" " $"B6ff& gfpffFf`f ff$&vfvff " "" " f&& b "`&" g&gbvx bRpb`bgb " &"bf&& bb&"" "b&" b" &" 0 "cFd& &rf&~ b&" b&& 'f"bv vfgffbf&b "" "&" "$" & b6b pvhxffgg gg``bv&g ~vf"( "b "&b` " " " "" " " wvf&&bBB v'bbr "&"bbf" "b&jb"f"` "" " &ff&vfvffg f 'Bg ggbF. bb"&&""b&& 2""r vrCfvv b"b"bf"jb "bjbb"&"bf t4 rr$ rf`fb`fd gfvbwvg bbff&"B&"& jbbjf "' r bwwrf '&'fgF &"fb&"`& bjb""bjbb& jjbb " ffb"gbd & "bfb""&" &&"b" "jbf&"" &"" " &ffbtg vgG"v&fvfw bf&Fb bb "&f"&" "f&"b"bbf& " "b! g$''&# xf"fvb"v ffggffnn &"ff&"b "&*bb" &rp p vd(nrv jbbjjbb "b"&" v f7"c&nbf nffvf&' &""bf "b"bjf 'g&`cC &""b bb"&f" " " "" " b " b"h f''b"avn ""&&"b"bb& ""&"&" " ""&&f"bb& b"f0 &66cfgCb nvv'wb'fv nf& bfb"b" "f&"" bjbb& "" & `#f"& 2r0 ggffb ""&&fb"b&" ""b&bb bbfjfbbf "b`""' '`gf&v& gzt6&g bb&bb ""b""b "&" "d"p & gwbfn ""b"& "&jf "&"f&"f&f ffb&&"b&&" &"&c1 bv&&be26 ffnffn &b"bbf*bjj "&"&& cc"Bc g~vfn &" " b&"&&b&f&& jf""bbf %'bBpbb&C' 26 f vxv&n &&"b" "&&b bf"bb&&f"b f&&f"bjj jfjjbf 0w 6"bBCc` nfnff~wf &bb"B"" cb40#& b"&&bfbbf ffc# hf~vvn ffBff f"bb& bb"&f"&& &"&&b f&&fjjbf jbf" "# ffvgnf nf""&&jf "&&j&&"bb& &"&fbfjfbf &bfj*bj& f&"f&"Bh &&bfBb &ff&ffnn jfjfbb& f"bb" !br6cCa r6 &dbff "b"jbb" "bjjf bbjb &" ' "b B fbff&f &bf&ffbb bd&f& &"bjjf"bb" ""'8 40"464020 bfFF& b&"b&& "&rb"" fbfbb bbjf"b""fj jf&&jf&&b` &&"&" " " " " ffbfc' nf`$$b`` f"bb&" &*f&&fj ff&fbFff&& nffb"bf "jbbf zg 6f ff$&bb bbf"& w~zc"0g nfnnf&f ff$fBF " "" fbjjbb ""b &&" " " nw~rb &bfdbF&fn bjjbb nnfnnf `fBf&& "&fb"" ""&"" f&&"" nfnf"& bb"bZk3f fhxvff fbbffb nnffn nfnff nnfnfn bbc3{sn nnfnnffnf &&"B ffnfn "f&` bf fnffn fbffb ffnfnf `" `bf & "bb` ""Bb&&b"gp "&bjbb fnfnn " bbjb "bf nnfnff "`&"f nfnff bb&fb " fnffnf &&jjbb "" &" ""&" fnnffnnff nffnf "$"&&bb&&j nfnnf "bjjf" nffnnf "&&fbb""f &"bf" b nnfnf nfnnf nfnnf ""bbf&& "&&"`" nffnf &&"&""B" nfnfnf $& bf&""bf &&jbb" nfnfnfnf bb "b&&""& "" " "& $ ffnffnn &"bbf"bbj nfnnffnf nfnnf nnfnf &"b&""&&jb ffnffnn nfnnfnf ffbb"bb&& bb "`"f fnnfn b&&""bbf&& "b" ""b" nnfnf bfb"&& "b" && "& nnffn b"bb"&" &&"&ffab nffnf &&"bb B b"&&nfc 373nnfnnf ffnfnf ffnff ""b"& s47nff &ffnfnc nfnff nnfnff nffnn nnfnf ffnfn nnfnf fnffn nfnff ffnnd fnnfn nnffnnf fnfnff nffa3 nnfnnf nffnf ffnff nfnfnnf ffnffn nfnfnfn ffnnffnff ffnfn ffnnff nnffnnfnf nnffn ffnfnfnf nfnfnf fnfnf ffnfn fnfnnf fnnfn ncCc2fnf fnffnf fnfnnff nfnff nnfnn nfnff #+#ff nffnff nfnfnnffnn fnffnn fc7#'nf ffnnff ffnfnfnf fnnff ffnnf nfnfnffnnf ffnfnff nfnfnnffnn nfnffnf fnffnn fnfnnf fnfnfn fc%#Bfnnfn nnfnff fnnff